import { ref, watch } from "vue";
// props 为双向绑定外部props的getFun, setProp为更新双向绑定的处理方法
const useSyncPropRef = (getProp, setProp) => {
  // propRef为首次接收props双向绑定值的中间变量
  const propRef = ref(getProp());
  // 外部更新内部值
  watch(getProp, (value) => {
    if (value !== propRef.value) {
      propRef.value = value;
    }
  });
  // 内部更新外部值
  watch(propRef, (value) => {
    if (value !== getProp()) {
      setProp(value);
    }
  });
  // 返回中间值
  return propRef;
};
export {
  useSyncPropRef
};
